package com.jsmtr.rms.utils.db;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 列元素
 *
 * @author 陈宇翔
 */
public class DbColumn extends ArrayList<String> {
    private static final long serialVersionUID = -8940196742313994740L;
    private String colNameStr = "";//列名
    int indextag = -1;
    private DbRowCollection rowList = new DbRowCollection();

    DbColumn(DbRowCollection rowobjs, int index, String colName) {
        this.colNameStr = colName;
        rowList = rowobjs;
        indextag = index;
    }

    public DbColumn() {
    }


    /**
     * 设置列名称
     */
    public void setColName(String colName) {
        this.colNameStr = colName;
    }

    /**
     * 修改指定行索引的数据
     */
    public boolean setValue(int index, String Value) {
        if (index <= rowList.size()) {
            rowList.get(index).set(this.indextag, Value);
            return true;
        } else {
            System.out.println("DbColumn.setColValue(int String).err指定索引：" + index + "超出行最大索引位置:" + rowList.length());
        }
        return false;
    }

    /**
     * 添加行元素
     */
    public boolean add(String rValue) {
        if (indextag == -1) {
            super.add(rValue);
            return true;
        } else {
            System.out.println("DbColumn.addValue(String).err无法对已有列DbColumn添加行元素,如需添加行请参考DbRowCollection.addDbRow(DbRow)");
        }
        return false;
    }

    /**
     * 在指定索引位置添加行元素
     */
    public void add(int index, String rValue) {
        if (indextag == -1) {
            super.add(index, rValue);
        } else {
            System.out.println("DbColumn.addValue(String).err无法对已有列DbColumn添加行元素,如需添加行请参考DbRowCollection.addDbRow(DbRow)");
        }
    }

    /**
     * 得到参数名称
     */
    public String getColumnName() {
        return colNameStr;
    }

    /**
     * 根据行索引得到值
     */
    public String get(int index) {
        if (indextag != -1) {
            return rowList.get(index).get(indextag);
        } else {
            if (index <= this.size()) {
                return super.get(index);
            } else {
                System.out.println("指定索引：" + index + "超出行最大索引位置:" + this.size());
            }
        }
        return null;
    }


    public int size() {
        if (indextag == -1) {
            return super.size();
        }
        return rowList.size();
    }

    /**
     * remove(int)不提供
     */
    public String remove(int i) {
        return null;
    }

    /**
     * remove(Object)不提供
     */
    public boolean remove(Object o) {
        return false;
    }

    /**
     * removeAll(Collection<?> c)不提供
     */
    public boolean removeAll(Collection<?> c) {
        return false;
    }

    /**
     * retainAll(Collection<?> c)不提供
     */
    public boolean retainAll(Collection<?> c) {
        return false;
    }


}
